/*
知识点：模型（model）的自定义方法
	一、模型自定义静态方法（类似find，findOne，不依赖某个实例后才能使用的方法）
	二、模型自定义实例方法，是针对某个模型实例化后，能用的方法
*/
const mongoose = require('mongoose');
const uri = 'mongodb://localhost/htl';
const db = mongoose.connect(uri);

const TestSchema = new mongoose.Schema({
	uid: Number,
	name: String
})

//这里展示了模型的自定义静态方法，实现方式，TestSchema.static.xxx = function(val,cb){};
//这里的静态方法功能是，根据uid查询数据。调用方式如下：
/*Test.findByUid(9527,function(err,doc) {  //Test为模型
	if(err) return console.log(err);
	console.log(doc);
})*/
TestSchema.statics.findByUid = function(uid,cb) {
	this.findOne({uid: uid},function(err,doc) {
		cb(err,doc);
	})
}

//这里施展的是模型的实例方法，实现方式，TestSchema.methods.xxx = function(){};
//这里的功能是输出实例化时，uid和name的值。调用方法如下：
//test.print();    //test为模型的实例化对象
TestSchema.methods.print = function() {
	console.log('uid:' + this.uid);
	console.log('name:'+ this.name);
}

const Test = mongoose.model('cc',TestSchema,'cc');
const test = new Test({
	uid: 9527,
	name: 'testName'
})


